package host;

import homeMadeExceptions.NotYetImplementedException;

import java.util.Vector;

import datatypes.BluetoothDeviceAddress;
import datatypes.Message;

public interface DiscoveryNetworkInterface {

	
	//general Tasks
	public void enableDiscoveryMechanism ();
	public void disableDiscoveryMechanism ();
	
	//DiscoveryTasks
	public void publishLocalServices ();
	public void findSpecificService (String serviceDescription);
	public void getAllAvailableServices ();
	public void askHostForServices (BluetoothDeviceAddress target);
	
	
	public void invokeSendMessage(Message msg, BluetoothDeviceAddress target);
	
	//Routing Protocol will inform if there is something intresting
	public boolean receiveMessage(Message msg, BluetoothDeviceAddress sender) ;
	
	public void onConnectionEstablished () ;
	public void onConnectionLost();
	public void onMessageLost (Message msg, BluetoothDeviceAddress target) throws NotYetImplementedException ;
	public void onMessageACK(Message msg, BluetoothDeviceAddress target);
	
	//--> Timestep Notification
	public void notificationAPI ();

}
